using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing.Drawing2D;

namespace GPSNav.NET
{
	public class GpsWay
	{
		private GpsNodesCollection nodes;
		public GpsNodesCollection Nodes
		{
			get { return nodes; }
		}


		private Int64 wayId;
		public Int64 WayId
		{
			get { return wayId; }
		}


		private int lod=0;
		public int LOD
		{
			get { return lod; }
			internal set { lod = value; }
		}

		private GeoRectangle bounds = GeoRectangle.Empty;
		public GeoRectangle Bounds
		{
			get { return bounds; }
			internal set { bounds = value; }
		}


		private int type=0;
		public int Type
		{
			get { return type; }
			internal set { type = value; }
		}

		private int subType=0;
		public int SubType
		{
			get { return subType; }
			internal set { subType = value; }
		}

		private string stringData;
		public string StringData
		{
			get { return stringData; }
			internal set { stringData = value; }
		}

		private GraphicsPath path;

		public GraphicsPath Path
		{
			get { return path; }
			set { path = value; }
		}
		


	


		public GpsWay(Int64 wayId)
		{
			this.wayId = wayId;
			nodes = new GpsNodesCollection();
		}

		public GpsWay(Int64 wayId, int lod)
		{
			this.wayId = wayId;
			this.lod = lod;
			nodes = new GpsNodesCollection();
		}

		public GpsWay(Int64 wayId, int wayLod, GeoRectangle wayBounds, int wayType, int waySubType, string wayString)
		{
			this.wayId = wayId;
			this.lod = wayLod;
			this.bounds = wayBounds;
			this.type = wayType;
			this.subType = waySubType;
			this.stringData = wayString;

			nodes = new GpsNodesCollection();
			
		}

		public override string ToString()
		{
			return String.Format("GpsWay {0}; nodes {1}",this.wayId,this.nodes.Count);
		}



	}
}
